var mongodb = require('./db'),
 ObjectID = require('mongodb').ObjectID;

function Advertise(ad) {
  this.title = ad.title;
  this.logo = ad.logo;
  this.imgurl = ad.imgurl;
  this.intro = ad.intro;
  this.detailUrl = ad.detailUrl;
  this.type = ad.type;
  this.createtimes = +new Date();
  this.content=ad.content;
  this.createtime= +new Date();
};

module.exports = Advertise;

//存储用户信息
Advertise.prototype.save = function(callback) {
  //要存入数据库的用户文档
  var ad = {
      title:this.title,
      logo:this.logo,
      imgurl:this.imgurl,
      intro:this.intro,
      detailUrl:this.detailUrl,
      type:this.type,
      createtime:+new Date(),
      createtimes:+new Date(),
      content:this.content

  };
  //打开数据库
  mongodb.open(function (err, db) {
    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 users 集合
    db.collection('ads', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }
      //将用户数据插入 users 集合
      collection.insert(ad, {
        safe: true
      }, function (err, user) {
        mongodb.close();
        if (err) {
          return callback(err);//错误，返回 err 信息
        }
        callback(null, ad);//成功！err 为 null，并返回存储后的用户文档
      });
    });
  });
};

//读取案列信息
Advertise.get = function(title, callback) {
  //打开数据库
  mongodb.open(function (err, db) {

    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 users 集合
    db.collection('ads', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }
      collection.findOne({
        title: title
      }, function (err, ad) {
        mongodb.close();
        if (err) {
          return callback(err);//失败！返回 err 信息
        }
        callback(null, ad);//成功！返回查询
      });
    });
  });
};
//TODO
Advertise.getListByType = function(type,callback){
  //打开数据库
  mongodb.open(function (err, db) {

    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 users 集合
    db.collection('ads', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }
      //查找用户名（name键）值为 name 一个文档
      collection.find({type:type}).toArray(function (err, ad) {
        mongodb.close();
        if (err) {
          return callback(err);//失败！返回 err 信息
        }
        callback(null, ad);//成功！返回查询的用户信息
      });
    });
  });
}


//TODO
Advertise.changeListData = function(params,callback){
  //打开数据库
  mongodb.open(function (err, db) {

    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 ads 集合
    db.collection('ads', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }
      //更新内容
      collection.update({"_id":new ObjectID(params.method)}, {
        $set: {title: params.title,intro:params.intro,logo:params.logo,imgurl:params.imgurl,createtimes:params.createtimes,type:params.type,detailUrl:params.detailUrl,content:params.content,
      type:params.type,}
      }, function (err,ad) {
        mongodb.close();
        if (err) {
          return callback(err);
        }
        callback(null,ad);
      // //查找用户名（name键）值为 name 一个文档
      // collection.update({type:type}, {$set: {title:"修改"}},function (err, ad) {
      //   mongodb.close();
      //   if (err) {
      //     return callback(err);//失败！返回 err 信息
      //   }
      //   callback(null, ad);//成功！返回查询的用户信息
      });
    });
  });
}


//TODO
Advertise.deleteListData = function(id,callback){
  //打开数据库
  // var ObjectId=new ObjectId();
  mongodb.open(function (err, db) {
    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 ads 集合
    db.collection('ads', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }

      collection.remove({"_id":new ObjectID(id)},function (err,ad) {
          mongodb.close();
          if (err) {
            return callback(err);
          }
          callback(null,ad);
        });
    });
  });
}

